﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Logica.Modulos.ClasesLogica;
using Modelo.Modulos.ClasesModelado;

namespace ProyectoFinal
{
    public partial class frmReportarTrabajo : Form
    {
        private int idUsuario;
      
        public int IdUsuario
        {
            get { return idUsuario; }
            set { idUsuario = value; }
        }
        public frmReportarTrabajo()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void frmReportarTrabajo_Load(object sender, EventArgs e)
        {
            cargarArbol();
            CargarGrid("Cargar");
        }

        public void cargarArbol()
        {
            TrabajoLog LogicaTrabajo = new TrabajoLog();
            TrabajoMod objTrabajo = new TrabajoMod();
            objTrabajo.IdUsuario = idUsuario;
            List<TrabajoMod> ListaProyectosTareas = LogicaTrabajo.ConsultarProyectoTareaId(objTrabajo);

           


            TreeNode NodoPapa = null;
            string UltimoPapa = "";

            for (int i = 0; i < ListaProyectosTareas.Count; i++)
            {
                if (UltimoPapa != ListaProyectosTareas[i].NombreProyecto)
                {
                    NodoPapa = new TreeNode(ListaProyectosTareas[i].NombreProyecto);
                    NodoPapa.Tag = ListaProyectosTareas[i].IdProyecto;
                    TreeNode NodoHijo = new TreeNode(ListaProyectosTareas[i].NombreTarea);
                    NodoPapa.Nodes.Add(NodoHijo);
                    treeView1.Nodes.Add(NodoPapa);
                    UltimoPapa = ListaProyectosTareas[i].NombreProyecto;
                    NodoHijo.Tag = ListaProyectosTareas[i].IdTarea;
                    

                }
                else
                {

                    TreeNode NodoHijo = new TreeNode((ListaProyectosTareas[i].NombreTarea));
                    NodoPapa.Nodes.Add(NodoHijo);
                    NodoHijo.Tag = ListaProyectosTareas[i].IdTarea;
                    


                }

            }
            treeView1.ExpandAll();
        }

        public void CargarGrid(string Accion_Form)
        {
            if ((Accion_Form == "Agregar") || (Accion_Form == "Cargar") || (Accion_Form == "Editar"))
            {
                dataGridView1.Rows.Clear();
                TrabajoLog logica = new TrabajoLog();
                TrabajoMod objMod=new TrabajoMod();
                objMod.IdUsuario=idUsuario;
                List<TrabajoMod> listaTrabajos = logica.ConsultarTrabajosId(objMod);

                for (int i = 0; i < listaTrabajos.Count; i++)
                {
                    dataGridView1.Rows.Add();
                    dataGridView1.Rows[i].Cells[0].Value = listaTrabajos[i].IdReporte;
                    dataGridView1.Rows[i].Cells[1].Value = listaTrabajos[i].NombreProyecto;
                    dataGridView1.Rows[i].Cells[2].Value = listaTrabajos[i].NombreTarea;
                    dataGridView1.Rows[i].Cells[3].Value = listaTrabajos[i].FechaTrabajo;
                    dataGridView1.Rows[i].Cells[4].Value = listaTrabajos[i].HorasTrabajadas;
                    dataGridView1.Rows[i].Cells[5].Value = listaTrabajos[i].Descripcion;
                }
            }

            else
            {
                if (Accion_Form == "Eliminar")
                {
                    UsuariosLog logica = new UsuariosLog();
                    List<UsuarioMod> listaClientes = logica.ConsultarUsuarios();

                    DataGridViewSelectedRowCollection listaGrid = dataGridView1.SelectedRows;
                    for (int i = listaGrid.Count - 1; i >= 0; i--)
                    {
                        dataGridView1.Rows.RemoveAt(listaGrid[i].Index);
                    }
                }

                else
                {


                }

            }

        } 

        private void btnAgregar_Click(object sender, EventArgs e)
        {

            try
            {
                // if (ValidacionesCampos() == true)
                {
                    
                    TrabajoMod objMod = new TrabajoMod();
                    objMod.IdProyecto = Convert.ToInt32(treeView1.SelectedNode.Parent.Tag);
                    objMod.IdTarea = Convert.ToInt32(treeView1.SelectedNode.Tag);
                    objMod.FechaTrabajo = dateTimePicker1.Value;
                    objMod.Descripcion = txtDescripcion.Text;
                    objMod.HorasTrabajadas =Convert.ToDecimal( txtHoras.Text);
                     
                    objMod.IdUsuario = idUsuario;


                    TrabajoLog Logica = new TrabajoLog();
                    Logica.InsertarTrabajo(objMod);
                    CargarGrid("Agregar");
                    txtDescripcion.Clear();
                    txtHoras.Clear();
                 
                    
                    
                }



            }
            catch (Exception exc)
            {

                MessageBox.Show(exc.Message, "Error de capa 8", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            
            
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            try
            {
                
                int Idindice = dataGridView1.SelectedRows[0].Index;
                int Ideliminar = Convert.ToInt32(dataGridView1[0, Idindice].Value);

                TrabajoMod objMod = new TrabajoMod();
                objMod.IdReporte = Ideliminar;


                TrabajoLog Logica = new TrabajoLog();
                Logica.EliminarTrabajo(objMod);

                CargarGrid("Eliminar");
            }
            catch (Exception exc)
            {

                MessageBox.Show(exc.Message, "Error de capa 8", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

       
       

       
    }
}
